﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

#pragma once

// std headers
#include <string>
#include <memory>

// qt headers
#include <QObject>


// custom headers
#include "GcsService.h"


namespace gcmp
{
    class IDocument;
}

namespace gdc
{
    class ICollaborationProject;
}

namespace gmepgcs
{
    class GCS_SERVICE_EXPORTS IProjectManager : public QObject
    {
        Q_OBJECT

    private:
        explicit IProjectManager(QObject *parent = nullptr);
        IProjectManager(const IProjectManager &) = default;
        IProjectManager& operator=(const IProjectManager &) = default;
        virtual ~IProjectManager();

    public:
        static IProjectManager *Get();

    public:
        std::wstring GetCurrentProjectId();
        std::wstring GetCurrentEnterpriseId();
//         std::wstring GetCurrentProjectName();
         std::wstring GetProjectNameById(const std::wstring &projectId);
         int GetCurrentProjectPermission();


 
    private:
        static IProjectManager *s_pInstance;
        std::wstring m_debugProjectId;
    };
}
